らっか
2004-11-06 20:06:12 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
No.50126, 1799 の質問、要望とかぶるのですが、
TMPGEnc Plus 2.5の「YUVデータをCCIR601ではなく、Basic YCbCrで出力する」の
機能を要望します。
自分の使い方としては、
1. MTV1000でMPEGキャプチャ
2. aviutlで編集し、プロジェクト保存。
3. TMPGEncでMPEG再圧縮
のような使い方が多いのですが、基本的にキャプチャしたときのままの
色で出力したいと思っています。
2でPCスケールに変換すればよいとは思うのですが、なるべくなら無駄な変換は
したくありません。
以上、よろしくお願いします。
ちょうき
2004-11-07 03:22:58 ( ID:ddvammykveg )
[ 削除 / 引用して返信 ]
VFAPIで誤解があるかもしれまん。
AviutlからTMPGEncへVFAPIを経由してデータを渡す場合
Aviutlに投入の時点でMPEGの16〜235をPCスケール(0〜255)にしていると
0〜15、236〜255にMPEG時に存在していたデータはRGB化(VFAPI経由時)で消えます。
ですので、
>2でPCスケールに変換すればよいとは思うのですが、
これは行わないのが正解だと思います。
「3」でTMPGEncの色補正でいい感じに設定してエンコードするのが現在の一番いい手
となりますね。
あとは、全部の作業をTMPGEnc 3.0でするか かな。
TMPGEnc 3.0は入力をYUVにさえすればRGB仕様のフィルタを通過しなければ
YUV0〜255はMPEG圧縮後も0〜255有るんで、VFAPIとか非圧縮AVIなどを使わない方向を
考えるのも良いかもしれません。
らっか
2004-11-07 04:34:59 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
>ちょうきさん
http://www3.tcn.ne.jp/~rakka/temp/src.png
ソースのMPGファイルのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp/2.5.png
TMPGEnc Plus 2.5で「YUVデータをCCIR601ではなく、Basic YCbCrで出力する」を
ONにして出力したMPGファイルのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp/3.0.png
TMPGEnc 3.0 XPressで出力したMPGファイルのヒストグラム
上の結果からTMPGEnc 3.0では、PC->TVスケール補正が行われているものと
判断しました。
自分としては、色合いについて主観で良いか悪いか判断できないので、
なるべくソースと同じヒストグラムになるように出力したいと思っています。
ですので、aviutlでTV->PCスケール補正をかければ、情報量は減りますが
まだましなものができるのでは?と思いました。
TMPGEncでも色補正できますが、TMPGEncでTV->PCスケール補正と
同等の補正を行うのは手間がかかりすぎるように思いますし、
また、TV->PCスケール補正後と同様のヒストグラムになるように
補正をかければ、結局、情報量は同じだけなくなるように思うのですが
どうでしょうか?
ちょうき
2004-11-07 13:50:03 ( ID:ddvammykveg )
[ 削除 / 引用して返信 ]
この辺は難しいのですが
MPEG圧縮は基本的にRGB0〜255をYUV16〜235として圧縮し、再生時に0〜255として再生するのが基本です。
(ですので、まるもデコーダーとかにはストレート変換(16〜235のまま)やCCIR601伸張(規定の伸張作業)の2個が有ったりします。)
再利用用のCRIデコーダーやまるもデコーダーなどは別として、最終的な再生側はDVDプレーヤー
であったり、DVD-MPEG再生ソフトであったりします。
この場合CCIR601伸張が基本となります。(CCIR601伸張された絵が正解)
つまりMPEGではCCIRの圧縮・伸張は1セットと言う事です。
この再利用時の伸張作業なのですが、Aviutlに読み込ませる前のデコーダーで行う場合、Aviutlで行う場合、
TMPGEnc 3.0 XPress(以下3.0)で行う場合の3つが考えられます。
私はこの3つ目の3.0に来てから、色調補正内の「YUVのCCIR伸張」で輝度・色差を両方とも255にするという
作業でCCIR伸張(つまりPCスケール変換)を行うのが良いのではないかなと思うわけです。
いずれにせよ「YUVデータをCCIR601ではなく、Basic YCbCrで出力する」が無い現状では
上記作業でRGBソースをYUVにすると0〜15、236〜255に存在していたソースは無くなります。
でも精度的にVFAPIを一度介すよりも3.0内で行った方がいいのでは無いかと思うわけです。
まぁ今回のケースで一番いいのは、VFAPIを介さず、HuffyuvなどでAviutlから一度出力して
それを3.0に読み込ませればYUVソースとして扱われるのでデータは全部残るんでは無いかな
と思います。(VFAPI経由は重いので実質のエンコード時間はhuffyuv出力時間を入れても減るかも)
らっか
2004-11-07 21:07:30 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
>私はこの3つ目の3.0に来てから、色調補正内の「YUVのCCIR伸張」で輝度・色差を両方とも255にするという
>作業でCCIR伸張(つまりPCスケール変換)を行うのが良いのではないかなと思うわけです。
実際に試したところ、aviutlでTV->PCスケール補正をかけたのと同じヒストグラムに
なりました。TMPGEnc 3.0の色調補正で簡単に同様のことができるとは
知りませんでした。
>まぁ今回のケースで一番いいのは、VFAPIを介さず、HuffyuvなどでAviutlから一度出力して
>それを3.0に読み込ませればYUVソースとして扱われるのでデータは全部残るんでは無いかな
>と思います。(VFAPI経由は重いので実質のエンコード時間はhuffyuv出力時間を入れても減るかも)
なるほど。huffyuv形式のaviファイルは色情報をYUV形式で持っているので
TMPGEncはMPGファイルと同様にCCIR圧縮を行わないのでは?ということですね。
多少、作業が増えますが、できれば自分の期待する形で出力できますね。
いろいろと役に立つ情報、ありがとうございました。
ただ、やはりTMPGEncとしては、VFAPIから入力されたデータがMPGファイルで
あることも考慮して、CCIR圧縮を行わないという設定をできるように
して欲しいと思っています。
らっか
2004-11-07 22:19:47 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
Huffyuv v2.1.1をインストールし、設定は特に変更せずに
Huffyuv形式でavi出力し、TMPGEncに入力し、DVD NTSC形式で出力したのですが
CIIR圧縮されていました。
とりあえず今のところは、TMPGEncでCCIR伸張するしかないのかもしれません。
ちょうき
2004-11-08 01:16:06 ( ID:ddvammykveg )
[ 削除 / 引用して返信 ]
間違っていました。
HuffyuvもYUVなので、Hufyuv化時にRGB>YUV変換が入ります。(16〜235になる)
これを回避するには・・・・
Basic YCbCrで保存 に相当する機能の有る HuffyuvS を使うとか・・・(0〜255のYUVで保存するHuffyuvの派生)
うーんややこしくなってきました(^^;
らっか
2004-11-08 13:02:43 ( ID:21ckbbn6rw. )
[ 削除 / 引用して返信 ]
>Basic YCbCrで保存 に相当する機能の有る HuffyuvS を使うとか・・・(0〜255のYUVで保存するHuffyuvの派生)
HuffyuvSで検索してみたところ、
huffyuvs 0.6 left origin base2.1.1
huffyuvs 0.6 left origin base2.1.1 ccesp
の2つが見つかったのですが、どちらを使えばよいのかわかりませんでした。
名前からするとccespはCCE-SP用に出力する場合?のように思われるのですが
ネットで見つかったページを見ているとccespでよいようにも思います。
ccespでよいのでしょうか?
ちょうき
2004-11-08 21:31:24 ( ID:ddvammykveg )
[ 削除 / 引用して返信 ]
ごめんなさい、寝ぼけてました。
Aviutlの98d辺りのバージョン以降を使っておられるなら、まるもさんのデコーダー
m2v.vfpをm2v.auiとリネームしてAviutlのフォルダへ置くことでYUV読み込みが可能になります。
これで元のYUVデータを維持してYUV読みこみ出来ているので、そのままHuffyuvへ出力し、
TMPGEncでもYUVで読み込む事でRGB変換を経ずに受け渡すことが出来ます。
この方法であればhuffyuvSは使わずにすみますね。
らっか
2004-11-09 01:06:02 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
m2v_vfp-0.6.48.lzh
huffyuvs_0.6_-_left_origin_-_base2.1.1-ccesp_dll.zip
をインストールし、試してみたのですが、
出力されたMPEGファイルはCCIR601圧縮されていました。
m2v.aui、huffyuvsの設定はデフォルトのままで特に変更していません。
ちょうき
2004-11-09 23:22:35 ( ID:ddvammykveg )
[ 削除 / 引用して返信 ]
えっと、こんがらがらせてすみません。huffyuvSは忘れてください(^^;
以下の文では
Aviutl99およびAviutl98d、そしてまるもプラグインm2v_vfp-0.6.48とHuffyuv2.20を使用して居ます。
まず結論からですが
http://www.delmart.org/~tyouki/img/aui_non.png
上のヒストグラムのように、m2v_vfp-0.6.48のm2v.vfpを「m2v.aui」へリネームし
Aviutlのフォルダに設置し、MPEGファイルを読みこみ、それをHuffyuvで出力した物を
XPressへ読み込んだ物です。
全部YUV処理なのでCCIR圧縮は経ずにデータのやり取りが可能です。
ここで一歩踏み込んだ話を始めます。
まず
http://www.delmart.org/~tyouki/img/aui_set.png
これを見てください。
先ほどのaui_non.pngのデータをXPressで色データがどこまで残っているか を見るために
CCIR伸張の項目でマイナス方向へセットした物です。
(再生時にはaui_non.pngの状態で見るので、このaui_set.pngの図は、より精度をのためにと考えてください。)
Aviutl98dで処理した物は乱れが出て居ます。
これはAviutl99で仕様変更となったAviutl98dのYUVの飽和の設定のせいです。
現在は精度的には99、安定性は98dと言われています。
今度はまるもデコーダーをVFAPI経由で動作(RGB処理)で動かして見ます。
http://www.delmart.org/~tyouki/img/vfp_non.png
一番最初の(http://www.delmart.org/~tyouki/img/aui_non.png)と比べても
CCIR伸張済み>Huffyuvのデータもストレート変換後Huffyuv化しXPressの色補正でCCIR伸張した物
は同じように見えます。
ストレートのものはCCIR圧縮されたままなので左右端に隙間が出来ています。
しかし、色データがどこまで残っているか調べる為にCCIR伸張の項目でマイナス方向へセットすると
http://www.delmart.org/~tyouki/img/vfp_set.png
こうなります。
デコーダでCCIR伸張後にデータを受け渡すと左右端に存在するデータが消し飛んでいます。
この結果からAviutlとXPressを使用する場合
・Aviutlプロジェクトを使う場合(またはm2v.vfpを使う場合)はストレート変換+XPressでのCCIR伸張
・Huffyuvを使う場合はm2v.vfpをm2v.auiにしてHuffyuvへYUV処理のままXPressへ
この2個が劣化が少なくてすむやり方ですね。
らっか
2004-11-11 05:27:32 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
● 使用ソフトのバージョン
TMPGEnc 3.0 XPress Trial Version 3.1.2.66
AviUtl 0.99
Huffyuv v2.1.1
m2v_vfp-0.6.48
● 使用ソフトの設定
http://www3.tcn.ne.jp/~rakka/temp2/setting_m2v_aui.png
m2v.auiの設定
http://www3.tcn.ne.jp/~rakka/temp2/setting_Huffyuv.png
Huffyuvの設定
● CCIR伸張の項目でマイナス方向へセットした物について
http://www3.tcn.ne.jp/~rakka/temp2/src_aviutl.png
m2v.auiの設定を「ストレート変換」にし、
aviutlでsrc.m2vを読み込みんだときのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp2/src_TMPGEnc.png
http://www3.tcn.ne.jp/~rakka/temp2/src_TMPGEnc(CCIR601).png
TMPGEncでsrc.m2vを読み込んだときのヒストグラムと、フィルターの
色調補正のCCIR601伸長で輝度、色差を-255にしたときのヒストグラム
http://www.delmart.org/~tyouki/img/aui_non.png
http://www.delmart.org/~tyouki/img/aui_set.png
ちょうきさんの結果の「オリジナル」のヒストグラムを見た感じでは、
aui_set.pngにおいて236〜255の値が現れていますが、
自分の結果では0になっています。
aui_set.pngは、どのようにした場合のヒストグラムになるのでしょうか?
● Huffyuv->TMPGEncについて
1. m2v.auiの設定を「ITU-R BT.601から伸張」に戻し、
aviutlでsrc.m2vを読み込み、avi(Huffyuv)ファイルを出力する。
2. avi(Huffyuv)ファイルをTMPGEncで読み込み、m2vファイルを出力する。
のようして作成されたm2vファイルのヒストグラムを見てみました。
http://www3.tcn.ne.jp/~rakka/temp2/Huffyuv_TMPGEnc.png
TMPGEncで読み込んだときのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp2/Huffyuv_aviutl.png
aviutl(ストレート変換)で読み込みんだときのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp2/src_TMPGEnc.png
http://www3.tcn.ne.jp/~rakka/temp2/Huffyuv_TMPGEnc.png
CCIR伸張されているTMPGEncのヒストグラムを見比べると
ソースとほぼ同じなのですが、
http://www3.tcn.ne.jp/~rakka/temp2/src_aviutl.png
http://www3.tcn.ne.jp/~rakka/temp2/Huffyuv_aviutl.png
CCIR伸張されていないaviutlのヒストグラムを見比べると、
236〜255の情報が失われているようでした。
http://www.delmart.org/~tyouki/img/aui_set.png
ちょうきさんの結果の真中の列を見た感じでは失われていないよう
なのですが、自分の処理方法、設定に問題があるのでしょうか?
ちょうき
2004-11-11 22:29:03 ( ID:ddvammykveg )
[ 削除 / 引用して返信 ]
>ちょうきさんの結果の「オリジナル」のヒストグラムを見た感じでは、
>aui_set.pngにおいて236〜255の値が現れていますが、
>自分の結果では0になっています。
これには裏技が有ります。
TMPGEnc 3.0 のフィルタ画面の下のオーバーレイ をONにします。
すると、今までRGB0〜255表示だったヒストグラムが -16〜0〜255〜275分表示可能になります。
と言っても表示されているのは0〜255の範囲なので明るさとかを下げたりCCIR逆操作を行ったりすると
ズルズルズルっと隠れていた分が出てきます。
なぜこう言う仕様なのかは知りませんが、推測するにYUV対応時の隠しモードかと。
私はG550などのグラフィックカードでTV出力時の色とかも見て色調整するのでこのモードには
気が付きました。
こっそり使ってます。
>http://www3.tcn.ne.jp/~rakka/temp2/src_TMPGEnc(CCIR601).png
こちらのヒストグラムの状態でオーバーレイをON,OFFすれば右の絶壁がなだらかになると思います。
aui読みこみの際はYUVで読み込むのでCCIR伸張は全く不要です。
YUV0〜255がYUV0〜255で扱われます。これをAviutlでHuffyuvで出す時はファイル>環境設定>コーデックの設定で
HuffyuvがYUY2で圧縮 にチェックが入っている事を確認して置いてください。
これをTMPGEncで読み込んでください。
ヒストグラムでのチェックはTMPGEncでもう一回ためして見てください。
らっか
2004-11-12 02:50:47 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
>これには裏技が有ります。
>TMPGEnc 3.0 のフィルタ画面の下のオーバーレイ をONにします。
>すると、今までRGB0〜255表示だったヒストグラムが -16〜0〜255〜275分表示可能になります。
>と言っても表示されているのは0〜255の範囲なので明るさとかを下げたりCCIR逆操作を行ったりすると
>ズルズルズルっと隠れていた分が出てきます。
オーバーレイをONにしたところ、CCIR圧縮したときに236〜255の値が
表示されるようになりました。
>aui読みこみの際はYUVで読み込むのでCCIR伸張は全く不要です。
>YUV0〜255がYUV0〜255で扱われます。これをAviutlでHuffyuvで出す時はファイル>環境設定>コーデックの設定で
>HuffyuvがYUY2で圧縮 にチェックが入っている事を確認して置いてください。
>これをTMPGEncで読み込んでください。
>ヒストグラムでのチェックはTMPGEncでもう一回ためして見てください。
http://www3.tcn.ne.jp/~rakka/temp3/setting_aviutl_codec.png
aviutlのコーデックの設定です。
http://www3.tcn.ne.jp/~rakka/temp2/src_TMPGEnc.png
ソースのm2vファイルをTMPGEncで読み込んだときのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp3/Huffyuv_avi_TMPGEnc.png
aviutl(ストレート変換)でソースのm2vを読み込み、出力したaviファイルを
TMPGEncで読み込みこんだときのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp3/Huffyuv_m2v_TMPGEnc.png
TMPGEncで上のaviファイルを読み込み、出力したm2vファイルを
TMPGEncで読み込んだときのヒストグラム
ソースのm2vファイルを読み込んだときのヒストグラムはCCIR伸張されているのですが
aviファイルを読み込んだときのヒストグラムはCCIR伸張されていませんでした。
そのためか最後に出力したm2vファイルのヒストグラムは、ソースのヒストグラムを
CCIR圧縮したようなヒストグラムになっていました。
http://www3.tcn.ne.jp/~rakka/temp3/setting_TMPGEnc1.png
http://www3.tcn.ne.jp/~rakka/temp3/setting_TMPGEnc2.png
TMPGEncの環境設定の入力プラグイン設定、AVIコーデック設定は
上のようになっているのですが、これの設定が関係しているのでしょうか?
らっか
2004-11-12 12:48:46 ( ID:21ckbbn6rw. )
[ 削除 / 引用して返信 ]
http://jumper-x.hp.infoseek.co.jp/begin/column/2/
MPEG-2 VIDEO VFAPI Plug-Inの使い方
http://jumper-x.hp.infoseek.co.jp/study/6/index.html
YC伸張実験君
のページを見ていたところ、どうもAviUtlの入力プラグインの優先度の
設定が関係しているように思いました。
たぶん、MPEG-2 VIDEO Plug-InよりもMPEG-2 VIDEO File Readerの
優先度が高くないといけないと思うのですが、もしかすると
そうなっていないのかもしれません。
(現在、自宅にいないので確認できません。)
らっか
2004-11-12 21:36:39 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
aviutlの入力プラグインの優先度の設定を見たところ、
・MPEG-2 VIDEO Plug-In
・MPEG-2 File Reader
のようになっておりm2v.vfpが使われているようでした。
MPEG-2 File Readerの優先度を上げ、上と同じようにした
結果、下のようになりました。
http://www3.tcn.ne.jp/~rakka/temp4/src_TMPGEnc2.png
src.m2vをTMPGEncで読み込みCCIR601圧縮したときのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp4/src_m2v_TMPGEnc2.png
src.m2vをTMPGEncで読み込み、出力したm2vファイルを
TMPGEncで読み込みCCIR601圧縮したときのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp4/Huffyuv_m2v_TMPGEnc2.png
src.m2vをaviutlで読み込み、出力したavi(Huffyuv)ファイルを
TMPGEncで読み込み、出力したm2vファイルを
TMPGEncで読み込みCCIR601圧縮したときのヒストグラム
ヒストグラムはほぼ同じなので、Huffyuvを中間ファイルとして
出力すれば、とりあえずTMPGEnc Plus 2.5の
「YUVデータをCCIR601ではなく、Basic YCbCrで出力する」で
出力したのと同じような結果が得られることがわかりました。
ただ、Huffyuvを中間ファイルとして出力するためには空き容量が
結構いるので、Huffyuvを中間ファイルとして使わない方法についても
試したいと思います。(試用期間が残り少ないので厳しいですが)
らっか
2004-11-12 23:16:13 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
>この結果からAviutlとXPressを使用する場合
>・Aviutlプロジェクトを使う場合(またはm2v.vfpを使う場合)はストレート変換+XPressでのCCIR伸張
>・Huffyuvを使う場合はm2v.vfpをm2v.auiにしてHuffyuvへYUV処理のままXPressへ
の上の方法について。
1. aviutlの入力プラグインの優先度の設定において、MPEG-2 VIDEO Plug-In(m2v.vfp)の
優先度をMPEG-2 File Reader(m2v.aui)よりも上にする。
2. m2v.vfpの設定を「ストレート変換」にする。
3. src.m2vをaviutlで読み込み、プロジェクトファイルを出力する。
→ src.aup
4. src.aupをTMPGEncで読み込み、CCIR601伸張し、m2vファイルを出力する。
→ src_aup.m2v
のようにしたときのヒストグラムは以下のようになりました。
http://www3.tcn.ne.jp/~rakka/temp5/src_TMPGEnc2.png
src.m2vをTMPGEncで読み込み、CCIR601圧縮したときのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp5/src_aup_TMPGEnc.png
http://www3.tcn.ne.jp/~rakka/temp5/src_aup_TMPGEnc2.png
src.aupをTMPGEncで読み込んだときのヒストグラムと
CCIR601伸張したときのヒストグラム
http://www3.tcn.ne.jp/~rakka/temp5/src_aup_m2v_TMPGEnc2.png
src_aup.m2vをTMPGEncで読み込み、CCIR601圧縮したときのヒストグラム
最後のヒストグラムとソースのヒストグラムを見比べた感じでは、
235〜のデータがなくなっているように思います。
>・Aviutlプロジェクトを使う場合(またはm2v.vfpを使う場合)はストレート変換+XPressでのCCIR伸張
の方法は、上の1〜4の操作とは異なるのでしょうか?
ちょうき
2004-11-15 22:25:16 ( ID:ddvammykveg )
[ 削除 / 引用して返信 ]
>>・Aviutlプロジェクトを使う場合(またはm2v.vfpを使う場合)はストレート変換+XPressでのCCIR伸張
>の方法は、上の1〜4の操作とは異なるのでしょうか?
これは、aupを読んでるという事はTMPGEnc3.0がRGBモードなので
ヒストグラムで0〜255に見えている範囲が全てと言う事になりますね。
ですんでTMPGEnc3.0をYUVモードで動かす事が肝要ってことだと思います(Huffyuv経由)
らっか
2004-11-16 00:09:10 ( ID:yyjjti8kn4. )
[ 削除 / 引用して返信 ]
>この結果からAviutlとXPressを使用する場合
>・Aviutlプロジェクトを使う場合(またはm2v.vfpを使う場合)はストレート変換+XPressでのCCIR伸張
>・Huffyuvを使う場合はm2v.vfpをm2v.auiにしてHuffyuvへYUV処理のままXPressへ
>
>この2個が劣化が少なくてすむやり方ですね。
のように書かれている2つの方法の上の方法については、
Huffyuvを経由する方法ではないように思ったのですが違うのでしょうか?
一応、aup入力だとRGB入力になって、Huffyuv入力だとYUV入力になることは
これまでの議論?で理解しています。
結局のところ、全く損失なくMPEG出力する場合、
Huffyuv入力するしかなく、aup入力する場合は235〜の損失は避けられない、
ということでよろしいでしょうか?
ちょうき
2004-11-16 23:39:48 ( ID:ddvammykveg )
[ 削除 / 引用して返信 ]
>Huffyuv入力するしかなく、aup入力する場合は235〜の損失は避けられない、
そう言うことだと思います。
二転三転してすみません(^^;
|